1. The Field of the Invention
The present invention relates to the field of computers and, more particularly, to integrated development environments and computer interfaces that are used for developing computer programs.
2. Background and Relevant Art
There are many types of systems and development environments that can be used by a computer programmer to develop code and create computer programs. These systems and environments are collectively referred to herein as Integrated Development Environments (IDEs). IDEs often include graphical interfaces comprising toolboxes of components that can be used for developing code. Non-limiting examples of programming components include controls, IDE extensions and plugins.
A Rapid Application Development (RAD) system, which exemplifies one type of an IDE, and that includes visual tools that can be selected by a programmer to build programs very quickly in a design environment, and without requiring the programmer to author every line of code. Non-limiting examples of RAD systems include Visual Basic, Delphi, Eclipse, Dreamweaver and Netbeans. RAD systems historically emphasized the programming speed at which code could be developed at the expense of generating efficient code. However, they can now be used to produce code quickly and without compromising the efficiency of the code.
Other traditional programming environments have also made improvements that enable them to utilize many of the visual tools and graphical interfaces that were previously available only in a RAD system. Accordingly, the distinction between RAD systems and non-RAD systems is somewhat blurred. Therefore, embodiments within the scope of the present application extend broadly to any IDE.
Even though existing IDEs are useful for enabling programs to be developed at a relatively fast rate and in a user-friendly manner, they are somewhat limited in their capabilities. In particular, existing IDEs do not provide interfaces that can be used to customize code that is generated in direct response to customized user input and existing IDE conditions (e.g., programming language, available data connections, formatting, etc.). The components provided by existing IDEs are cookie-cutter, one size fits all, type tools that are not designed to develop customized code segments, but instead only standardized code segments.
Existing IDEs are also somewhat limited in their ability to develop and edit programs that contain both code and content because they are not currently configured to logically separate the code and content of a program. The term “code,” as used herein, generally refers to the actual source code that is traditionally developed by a programmer. The term “content,” as used herein, generally refers to the visual aspects of a program that are traditionally developed by a designer. An example of content includes the layout and graphics of a web page. Accordingly, HTML mark-up refers to content, rather than code in the context of the present application.
Programs containing both code (e.g., traditional source code in a programming language developed by a programmer) and content (e.g., web page constructs, graphics, texts, and other arbitrary markup elements developed by designers) are typically worked on by different groups of developers (programmers and designers) using different development tools. Accordingly, it would be useful to separate the code and content of a program to enable each portion of the program to be developed and edited independently by the appropriate group of developers. However, existing IDEs are not currently configured to logically separate the code and content of a program, particularly while maintaining the integrity of the program being developed.
Accordingly, there continues to exist a need in the art for improved IDEs and corresponding tools and techniques for developing and editing computing programs.